﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace ProyectoWeb
{
    public partial class Mostrar_Recetas : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenar_ddlCategorias();
                ddlCategorias.Items.Insert(0, new ListItem(""));
                ddlIngredientes.Items.Insert(0, new ListItem(""));

                //CATEGORIAS PRINCIPAL
                Datos obdatos = new Datos();
                int codCategoria;
                string consultaBusqueda;   
                string ac = Request.QueryString["ac"];
                if (ac != null)
                {
                    codCategoria = obtener_Id("Categorias", "CodCategoria", ac, "NombreCategoria");
                    consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE CodCategoria = '" + codCategoria + "'";

                    obdatos.consultar(consultaBusqueda, "Recetas");
                    gvRecetas.DataSource = obdatos.ds.Tables[0];
                    gvRecetas.DataBind();

                    lblTitulo.Text = "BÚSQUEDA POR CATEGORIAS";
                    lblSubtitulo.Text = "RECETAS EN LA CATEGORÍA " + ac.ToUpper();
                }
                else{
                    gvRecetas.DataSource = null;
                    gvRecetas.DataBind();
                }

                //INGREDIENTES PRINCIPAL
                string ai = Request.QueryString["ai"];
                if (ai != null)
                {
                    consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE Ingredientes = '" + ai + "'";

                    obdatos.consultar(consultaBusqueda, "Recetas");
                    gvRecetas.DataSource = obdatos.ds.Tables[0];
                    gvRecetas.DataBind();

                    lblTitulo.Text = "BÚSQUEDA POR INGREDIENTES";
                    lblSubtitulo.Text = "RECETAS REALIZADAS CON " + ai.ToUpper();
                }
                else{
                    gvRecetas.DataSource = null;
                    gvRecetas.DataBind();
                }

                //DIFICULTAD PRINCIPAL
                string ad = Request.QueryString["ad"];
                if (ad != null)
                {
                    consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE Dificultad = '" + ad + "'";

                    obdatos.consultar(consultaBusqueda, "Recetas");
                    gvRecetas.DataSource = obdatos.ds.Tables[0];
                    gvRecetas.DataBind();

                    lblTitulo.Text = "BÚSQUEDA POR DIFICULTAD";
                    lblSubtitulo.Text = "RECETAS DIFICULTAD: " + ad.ToUpper();
                }
                else
                {
                    gvRecetas.DataSource = null;
                    gvRecetas.DataBind();
                }

                //TIEMPO PRINCIPAL
                string at = Request.QueryString["at"];
                if (at != null)
                {
                    consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE TiempoEstimado = '" + at + "'";

                    obdatos.consultar(consultaBusqueda, "Recetas");
                    gvRecetas.DataSource = obdatos.ds.Tables[0];
                    gvRecetas.DataBind();

                    lblTitulo.Text = "BÚSQUEDA POR TIEMPO";
                    lblSubtitulo.Text = "RECETAS DE " + at.ToUpper();
                }
                else
                {
                    gvRecetas.DataSource = null;
                    gvRecetas.DataBind();
                }

                //RECETA PRINCIPAL
                string abr = Request.QueryString["abr"];
                if (abr != null)
                {
                    consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE NombreReceta LIKE '%" + abr + "%'";

                    obdatos.consultar(consultaBusqueda, "Recetas");
                    gvRecetas.DataSource = obdatos.ds.Tables[0];
                    gvRecetas.DataBind();
                }
                else
                {
                    gvRecetas.DataSource = null;
                    gvRecetas.DataBind();
                }
            }
        }

        private void llenar_ddlCategorias()
        {
            Datos obCategorias = new Datos();

            ddlCategorias.DataSource = obCategorias.consultar_general("Categorias");
            ddlCategorias.DataValueField = "CodCategoria";
            ddlCategorias.DataTextField = "NombreCategoria";
            ddlCategorias.DataBind();
        }

        private void buscar_recetas()
        {
            Datos obdatos = new Datos();
            string consultaBusqueda;

            if (txtNombreReceta.Text != "")
            {
                consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE NombreReceta LIKE '%" + txtNombreReceta.Text + "%'";

                obdatos.consultar(consultaBusqueda, "Recetas");
                gvRecetas.DataSource = obdatos.ds.Tables[0];
                gvRecetas.DataBind();
            }
            else
            {
                gvRecetas.DataSource = null;
                gvRecetas.DataBind();
            }
        }

        private int obtener_Id(string Tabla, string columna_Id, string nombreColumna, string columna_nombreId)
        {
            Datos obDatos = new Datos();
            string ConsultaSQL = "SELECT * FROM " + Tabla + " WHERE " + columna_nombreId + " = '" + nombreColumna + "'";

            DataTable tabla = new DataTable();
            tabla = obDatos.consultar_especifico(ConsultaSQL, Tabla);

            int valor = Convert.ToInt32(tabla.Rows[0][columna_Id].ToString());

            return valor;
        }

        public void iBtnBuscarReceta_Click(object sender, ImageClickEventArgs e)
        {
            buscar_recetas();
        }

        public void iBtnBuscarxCategoria_Click(object sender, ImageClickEventArgs e)
        {
            Datos obdatos = new Datos();
            int codCategoria;
            string consultaBusqueda;   

            if (ddlCategorias.SelectedItem.Text != "")
            {
                codCategoria = obtener_Id("Categorias", "CodCategoria", ddlCategorias.SelectedItem.Text, "NombreCategoria");
                consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE CodCategoria = '" + codCategoria + "'";

                obdatos.consultar(consultaBusqueda, "Recetas");
                gvRecetas.DataSource = obdatos.ds.Tables[0];
                gvRecetas.DataBind();

                lblTitulo.Text = "BÚSQUEDA POR CATEGORIAS";
                lblSubtitulo.Text = "RECETAS EN LA CATEGORÍA " + ddlCategorias.SelectedItem.Text.ToUpper();
            }
            else {
                gvRecetas.DataSource = null;
                gvRecetas.DataBind();
            }
        }

        public void iBtnBuscarxIngrediente_Click(object sender, ImageClickEventArgs e)
        {
            Datos obdatos = new Datos();
            string consultaBusqueda;   

            if (ddlIngredientes.SelectedItem.Text != "")
            {
                consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE Ingredientes = '" + ddlIngredientes.SelectedItem.Text + "'";

                obdatos.consultar(consultaBusqueda, "Recetas");
                gvRecetas.DataSource = obdatos.ds.Tables[0];
                gvRecetas.DataBind();

                lblTitulo.Text = "BÚSQUEDA POR INGREDIENTES";
                lblSubtitulo.Text = "RECETAS REALIZADAS CON " + ddlIngredientes.SelectedItem.Text.ToUpper();
            }
            else {
                gvRecetas.DataSource = null;
                gvRecetas.DataBind();
            }
        }

        public void iBtnBuscarxDificultad_Click(object sender, ImageClickEventArgs e)
        {
            Datos obdatos = new Datos();
            string consultaBusqueda;   
            
            if (ddlDificultad.SelectedItem.Text != "")
            {
                consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE Dificultad = '" + ddlDificultad.SelectedItem.Text + "'";

                obdatos.consultar(consultaBusqueda, "Recetas");
                gvRecetas.DataSource = obdatos.ds.Tables[0];
                gvRecetas.DataBind();

                lblTitulo.Text = "BÚSQUEDA POR DIFICULTAD";
                lblSubtitulo.Text = "RECETAS DIFICULTAD: " + ddlDificultad.SelectedItem.Text.ToUpper();
            }
            else {
                gvRecetas.DataSource = null;
                gvRecetas.DataBind();
            }
        }

        public void iBtnBuscarxTiempo_Click(object sender, ImageClickEventArgs e)
        {
            Datos obdatos = new Datos();
            string consultaBusqueda;

            if (ddlTiempo.SelectedItem.Text != "")
            {
                consultaBusqueda = "SELECT CodReceta, NombreReceta FROM Recetas WHERE TiempoEstimado = '" + ddlTiempo.SelectedItem.Text + "'";

                obdatos.consultar(consultaBusqueda, "Recetas");
                gvRecetas.DataSource = obdatos.ds.Tables[0];
                gvRecetas.DataBind();

                lblTitulo.Text = "BÚSQUEDA POR TIEMPO";
                lblSubtitulo.Text = "RECETAS DE " + ddlTiempo.SelectedItem.Text.ToUpper();
            }
            else {
                gvRecetas.DataSource = null;
                gvRecetas.DataBind();
            }
        }
    }
}